iT邦幫忙

2024 iThome 鐵人賽

DAY 6
1
DevOps

時間序列資料庫探討 - Prometheus系列 第 6

Prometheus - 讀取時間序列資料

  • 分享至 

  • xImage
  •  

本篇提問

  • Prometheus 提供了哪些讀介面?
  • PromQL 表達式有哪些語法?如何運行?
  • Alert Template 有哪些語法?

讀取資料的介面

上篇介紹了 Prometheus 如何用多個時間序列,組織成 OpenMetrics 的指標族。這篇我們終於可以切入實務上最先遇到的的東西了-- PromQL 讀指標資料。

我猜多數 PromQL 使用者,第一次使用 PromQL 都是在 Grafana 監控面版上。卻不知道,Grafana 是用什麼協定從 Prometheus 讀取資料的。或許稍有經驗的人,會看過 Grafana 跳出 http timeout 的錯誤訊息,而得知 Grafana 是用 http 協定從 Prometheus 讀取資料的。

另外可能有人注意到 :9090/graph 這個網址,做為 Prometheus 的 Web UI,對於同樣的 PromQL,有 table 和 graph 兩種呈現方式,呈現出來的資訊量並不相同。雖然都是 http,但是這兩個介面的資料格式,卻不相同。

本節提問

  • 究竟 Prometheus 提供了哪些讀取時間序列資料的介面呢?
  • 所有讀時間序列的介面都是 PromQL 嗎?
  • 有哪中介資料可以讀呢?

PromQL

PromQL 是一個有完善定義,且有許多函數的表達式語言。
比方說下面這個查詢,它有用到如{}, ", [] 等符號,這些符號都有特定的意義。顯然可以猜到大括號代表標籤值、中括號代表時間窗口大小。但是這些符號具體代表什麼意義呢?時間窗口大小是開區間還是閉區間呢?我在不同現實時間下同一個 PromQL 查詢,會得到同樣的結果嗎?

http_requests_total{job="apiserver", handler="/api/comments"}[5m]

本節提問

  • PromQL 的語法和關鍵字有哪些?
  • PromQL 的語法可以表示什麼樣的值?
  • PromQL 的計算會依賴環境嗎?

Alert Template

文件 羅列了所有的 alert template 關鍵字。這些關鍵字可以用來套在 Golang 樣板上。但 Golang 樣板的語法又是什麼呢?

本節提問

  • Golang 樣板的語法和關鍵字有哪些?

問題整理

  • Prometheus 有哪些讀取時間序列資料的介面呢?
  • Prometheus 有哪些中介資料可以讀呢?
  • PromQL 建構了什麼語法、計算和環境?
  • Golang 樣板如何使用?

本篇的問題比較基本,又是大家會先碰到的問題。
預計之後三篇都要來回答這些問題。


上一篇
Prometheus - 時間序列資料的資料型態
下一篇
Prometheus - 讀取時間序列資料的 API
系列文
時間序列資料庫探討 - Prometheus13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言